using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._TopographicProductionTools._DataManagement._Geodatabase
{
    /// <summary>
    /// <para>Export MGCP Metadata</para>
    /// <para>Exports Multinational Geospatial Co-production Program (MGCP) metadata datasets (Cell, Subregion, and Source feature classes) to an XML file.</para>
    /// <para>将多国地理空间协同生产计划 （MGCP） 元数据数据集（像元、子区域和源要素类）导出为 XML 文件。</para>
    /// </summary>    
    [DisplayName("Export MGCP Metadata")]
    public class ExportMetadata : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public ExportMetadata()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_cell_features">
        /// <para>Cell Features</para>
        /// <para>The MGCP Cell feature layer to export.</para>
        /// <para>要导出的 MGCP Cell 要素图层。</para>
        /// </param>
        /// <param name="_export_location">
        /// <para>Export Location</para>
        /// <para>The directory where the metadata XML files will be created.</para>
        /// <para>将在其中创建元数据 XML 文件的目录。</para>
        /// </param>
        public ExportMetadata(object _in_cell_features, object _export_location)
        {
            this._in_cell_features = _in_cell_features;
            this._export_location = _export_location;
        }
        public override string ToolboxName => "Topographic Production Tools";

        public override string ToolName => "Export MGCP Metadata";

        public override string CallName => "topographic.ExportMetadata";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_in_cell_features, _export_location, _out_export_location];

        /// <summary>
        /// <para>Cell Features</para>
        /// <para>The MGCP Cell feature layer to export.</para>
        /// <para>要导出的 MGCP Cell 要素图层。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Cell Features")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_cell_features { get; set; }


        /// <summary>
        /// <para>Export Location</para>
        /// <para>The directory where the metadata XML files will be created.</para>
        /// <para>将在其中创建元数据 XML 文件的目录。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Export Location")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _export_location { get; set; }


        /// <summary>
        /// <para>Output Export Location</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Export Location")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_export_location { get; set; }


        public ExportMetadata SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}